// 文件名：GroundStation.h
#pragma once
#include "SpaceAsset.h"

// 地面站：继承自 SpaceAsset，用于描述地球上支持火星货运的地面设施
class GroundStation : public SpaceAsset
{
public:
    // 构造函数
    // @param id    地面站唯一编号（如 "GS01"）
    // @param loc   地面站所在地理位置（如 "酒泉"、"库鲁"）
    // @param cap   地面站保障能力，单位：吨（可同时支持的飞船吨位上限）
    GroundStation(std::string id, std::string loc, double cap)
        : SpaceAsset(id),
          m_location(loc),
          m_capability(cap)
    {
    }

    // 返回对象类型字符串，固定为 "GroundStation"
    std::string type() const override
    {
        //======Begin======
        return "GroundStation";
        //=======End=======
    }

    // 在控制台打印地面站的详细信息
    void report() const override
    {
        //======Begin======
        std::cout << "[GroundStation] ID=" << m_id
                  << "  Location=" << m_location
                  << "  Capability=" << m_capability << "t\n";
        //=======End=======
    }

    // 将地面站对象序列化为文本，格式：
    //   GroundStation|<id>|<loc>|<cap>
    void save(std::ostream &os) const override
    {
        
    }

private:
    std::string m_location; //!< 地面站地理位置
    double m_capability;    //!< 保障能力（吨）
};